<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>04-then方法的返回结果特点</title>
</head>

<body>
    <script>
        let p = new Promise((resolve, reject) => {
            resolve('ok')
        })
        // then方法返回的新promise的结果状态(值)是由什么决定的?

        // 由then方法指定的回调函数执行的结果决定的


        // 在这里以resolve成功为例:分三种情况:

        let result = p.then(value => {//then的返回结果是一个新promise对象,它的状态由then指定的回调函数决定

            // 1.抛出错误 throw 等同于 reject失败状态
            // throw '未知错误'

            // 2.返回结果是非promise类型的对象的任意值时(string,布尔,数字等等),只影响结果,不影响状态
            // return  '123'

            // 3.如果返回的是一个新Promise,此Promise的结果就会成为新promise(这里指的是result)的结果
            return new Promise((resolve,reject)=>{
                // resolve('success')
                reject('error')
            })
        },)
        console.log(result);
    </script>
</body>

</html>